#ifndef SetMode_H
#define SetMode_H

#define MODEUPD 0
#define MODEAUTO 0
#define MODECOOL 1
#define MODEDRY 2
#define MODEFAN 3
#define MODEHEAT 4

#define RXOFF 0x00
#define RXCOOL 0x01
#define RXDRY 0x02
#define RXFAN 0x03
#define RXHEAT 0x04
#define RXFORCECOOL 0x05
#define RXFORCEHEAT 0x06
#define RXFORCEDEF 0x07
#define RXCOOLTEST 0x08
#define RXHEATTEST 0x09
#define RXFORECALL 0x0A
#define RXTESTRUN 0x0B

#ifdef SetMode_Variable
#define SetMode_Extern

#else
#define SetMode_Extern extern
#endif

SetMode_Extern U8 AutoModeUpdSec;
SetMode_Extern U8 runModeOld;

SetMode_Extern struct
{
    U8 stat;  // 自动模式更新状态
    U8 timer; // 自动模式刷新时间

    U16 tempStop;      // 系统停机环境温度
    U16 temp4minAgo;   // 4分钟前环境温度
    U16 temp4minLater; // 4分钟后环境温度
} autoMode;

SetMode_Extern ram_byte ModeFlag;
#define f_ModeClash ModeFlag.bit.b0  // 模式冲突标志
#define f_TarTempChg ModeFlag.bit.b1 // 设定温度改变标志

void SetModeJudge(void);
U8 RunModeJudge(void);
void AutoModeInit(void);
#endif
